package com.xyy.yueshijia;

import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.view.Window;
import android.widget.RadioGroup;

import com.xyy.yueshijia.shopping.ShoppingFragment;
import com.xyy.yueshijia.view.HomePageFragment;
import com.xyy.yueshijia.view.MyFragment;
import com.xyy.yueshijia.topic.TopicFragment;
import com.xyy.yueshijia.view.store.StoreFragment;

public class MainActivity extends AppCompatActivity {
    //5个Fragment
    private HomePageFragment f1;
    private TopicFragment f2;
    private StoreFragment f3 ;
    private ShoppingFragment f4;
    private MyFragment f5;
    //按钮
    private RadioGroup radioGroup;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //去掉标题栏
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        //第一次初始化首页默认显示第一个fragment
        radioGroup= (RadioGroup) findViewById(R.id.radiogroup);
        initFragment1();
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.homepage:
                        initFragment1();
                        break;
                    case R.id.topic:
                        initFragment2();
                        break;
                    case R.id.store:
                        initFragment3();
                        break;
                    case R.id.shopping:
                        initFragment4();
                        break;
                    case R.id.my:
                        initFragment5();
                        break;
                }
            }
        });



    }
    //显示第1个fragment
    private void initFragment1(){
        //开启事务，fragment的控制是由事务来实现的
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

        //第一种方式（add），初始化fragment并添加到事务中，如果为null就new一个
        if(f1 == null){
            f1 = new HomePageFragment();
            transaction.add(R.id.main_frame_layout, f1);
        }
        //隐藏所有fragment
        hideFragment(transaction);
        //显示需要显示的fragment
        transaction.show(f1);
        //第二种方式(replace)，初始化fragment
//        if(f1 == null){
//            f1 = new MyFragment("消息");
//        }
//        transaction.replace(R.id.main_frame_layout, f1);
        //提交事务
        transaction.commit();
    }

    //显示第2个fragment
    private void initFragment2(){
        //开启事务，fragment的控制是由事务来实现的
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

        //第一种方式（add），初始化fragment并添加到事务中，如果为null就new一个
        if(f2 == null){
            f2 = new TopicFragment();
            transaction.add(R.id.main_frame_layout, f2);
        }
        //隐藏所有fragment
        hideFragment(transaction);
        //显示需要显示的fragment
        transaction.show(f2);


        //第二种方式(replace)，初始化fragment
//        if(f1 == null){
//            f1 = new MyFragment("消息");
//        }
//        transaction.replace(R.id.main_frame_layout, f1);
        //提交事务

        transaction.commit();
    }
    //显示第3个fragment
    private void initFragment3(){
        //开启事务，fragment的控制是由事务来实现的
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

        //第一种方式（add），初始化fragment并添加到事务中，如果为null就new一个
        if(f3 == null){
            f3 = new StoreFragment();
            transaction.add(R.id.main_frame_layout, f3);
        }
        //隐藏所有fragment
        hideFragment(transaction);
        //显示需要显示的fragment
        transaction.show(f3);

        //第二种方式(replace)，初始化fragment
//        if(f1 == null){
//            f1 = new MyFragment("消息");
//        }
//        transaction.replace(R.id.main_frame_layout, f1);
        //提交事务
        transaction.commit();
    }
    //显示第4个fragment
    private void initFragment4(){
        //开启事务，fragment的控制是由事务来实现的
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

        //第一种方式（add），初始化fragment并添加到事务中，如果为null就new一个
        if(f4 == null){
            f4 = new ShoppingFragment();
            transaction.add(R.id.main_frame_layout, f4);
        }
        //隐藏所有fragment
        hideFragment(transaction);
        //显示需要显示的fragment
        transaction.show(f4);
        //第二种方式(replace)，初始化fragment
//        if(f1 == null){
//            f1 = new MyFragment("消息");
//        }
//        transaction.replace(R.id.main_frame_layout, f1);
        //提交事务
        transaction.commit();
    }
    //显示第5个fragment
    private void initFragment5(){
        //开启事务，fragment的控制是由事务来实现的
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

        //第一种方式（add），初始化fragment并添加到事务中，如果为null就new一个
        if(f5 == null){
            f5 = new MyFragment();
            transaction.add(R.id.main_frame_layout, f5);
        }
        //隐藏所有fragment
        hideFragment(transaction);
        //显示需要显示的fragment
        transaction.show(f5);
        //第二种方式(replace)，初始化fragment
//        if(f1 == null){
//            f1 = new MyFragment("消息");
//        }
//        transaction.replace(R.id.main_frame_layout, f1);
        //提交事务
        transaction.commit();
    }
    //隐藏所有的fragment
    private void hideFragment(FragmentTransaction transaction){
        if(f1 != null){
            transaction.hide(f1);
        }
        if(f2 != null){
            transaction.hide(f2);
        }
        if(f3 != null){
            transaction.hide(f3);

        }
        if(f4 != null){
            transaction.hide(f4);
        }
        if(f5 != null){
            transaction.hide(f5);
        }
    }

}
